
//================v3要点总结===============
/**
 * 1.采用递归方式
 * 2.思路：
 *      返回条件：l1 或 l2 其中一个为空
 *      结果：两个节点较小的一个，连接剩余节点的合并结果，得到最终答案
 */


// eslint-disable-next-line no-unused-vars
function ListNode(val, next) {
    this.val = (val === undefined ? 0 : val)
    this.next = (next === undefined ? null : next)
}

/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var mergeTwoLists = function (l1, l2) {
    if (!l1) {
        return l2
    }
    if (!l2) {
        return l1
    }
    if (l1.val < l2.val) {
        l1.next = mergeTwoLists(l1.next, l2)
        return l1
    } else {
        l2.next = mergeTwoLists(l1, l2.next)
        return l2
    }

};

console.log(mergeTwoLists())